const cors = require('cors');
const path = require('path');
const express = require('express');
const jwt = require('express-jwt');
const app = express();
app.listen(3007, () => console.log('server is running...'));

// ------------------ 配置应用级别的中间件
app.use(cors());
app.use(express.urlencoded({
    extended: false
}));
app.use(express.static('uploads'));
// 解析token字符串，控制哪些接口必须登录才能访问
// 把用户保存的数据，放到 req.user 的变量上
app.use(jwt({
    secret: 'bigevent'
}).unless({
    path: /^\/api/
}))

// ------------------ 加载路由模块
app.use('/my', require(path.join(__dirname, 'routers', 'user')));
app.use('/api', require(path.join(__dirname, 'routers', 'login')));
app.use('/my/article', require(path.join(__dirname, 'routers', 'category')));
app.use('/my/article', require(path.join(__dirname, 'routers', 'article')));

// 错误处理中间件
// 必须是4个参数
app.use(function (err, req, res, next) {
    if (err.name === 'UnauthorizedError') {
        res.status(401).send({
            status: 1,
            message: '身份认证失败'
        })
    }
})